package com.freight.tws.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.freight.common.core.web.controller.BaseService;
import com.freight.tws.api.domain.Driver;
import com.freight.tws.domain.vo.UpdatePasswordVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 司机信息Service接口
 *
 * @author ruoyi
 * @date 2022-01-20
 */
public interface IDriverService extends BaseService<Driver> {

    /**
     * 查询常用司机列表（tws_company_driver物流公司-司机关系表）
     * @param driver
     * @return
     */
    IPage<Driver> driverList(IPage<Driver> page, Driver driver);

    /**
     * 司机注册APP
     * @param driver
     * @return
     */
    boolean regist(Driver driver);

    /**
     * 忘记密码 修改密码（需要短信验证码）
     * @param updatePasswordVo
     */
    int forgetUpdatePassword(UpdatePasswordVo updatePasswordVo);

    /**
     * 修改密码（需要旧密码）
     * @param updatePasswordVo
     */
    int resetPassword(UpdatePasswordVo updatePasswordVo);

    /**
     * 提交实名认证
     */
    int toCert(HttpServletRequest request, Driver driver);

    /**
     * 司机审核
     * @param driver
     * @return
     */
    int cert(Driver driver);

    /**
     * 司机禁/启用
     */
    int stateChange(Driver driver);

    /**
     * 物流公司添加常用司机
     * @param driverId
     * @return
     */
    boolean add(Long driverId);

    /**
     * 删除常用司机（tws_company_driver物流公司-司机关系表）
     */
    boolean removes(List<Long> driverIds);

    /**
     * 删除司机（tws_driver司机表）
     */
    boolean delete(List<Long> driverIds);

    /**
     * 检测证件到期时间
     */
    void paperExpires();

    /**
     * 上传司机
     */
    boolean upload(Long id);

}
